package com.sanchunhui.psc.service

import com.sanchunhui.psc.data.api.ProjectTeamApi
import com.sanchunhui.psc.data.net.RetrofitFactory
import com.sanchunhui.psc.data.protocol.BaseResp
import com.sanchunhui.psc.data.protocol.ProjectStatusReq
import com.sanchunhui.psc.data.protocol.ResponseInfo
import com.sanchunhui.psc.data.protocol.UserInfo
import rx.Observable

/**
 * @Author zyx
 * @Date 2021/7/8-14:27
 * @Dscribe 分组管理业务接口
 */
interface ProjectTeamService {

    // 获取分组列表
    fun getTeamList(token : String) : Observable<ResponseInfo>

    // 获取分组下所有成员
    fun getTeamMember(teamID : Int, token: String) : Observable<ResponseInfo>

    // 添加分组到所在项⽬
    fun addTeam(token: String, name:String, leader_member_id:Int) : Observable<ResponseInfo>

    //  获取所有未在项⽬中⽤户的列表
    fun getSearchMember(token: String, name: String?=null,company_id:Int?=null,job_id:Int?=null) : Observable<MutableList<UserInfo>?>

    //  获取所有公司组成的映射（键值对）
    fun getCompanyList(token: String) : Observable<ResponseInfo>

    //  获取所有⼯种组成的映射（键值对）
    fun getJobList(token: String) : Observable<ResponseInfo>

    // 更改分组状态
    fun changeTeamStatus(teamId: Int,token: String, status: String) : Observable<Boolean>

    // 添加成员到指定分组
    fun addTeamMember(teamId: Int ,token: String,ads:List<Int>) : Observable<Boolean>

    // 设置指定分组名称
    fun setTeamInfo(teamId: Int, token: String, name: String) : Observable<Boolean>

    // 设置指定分组负责⼈
    fun setTeamLeader(teamId: Int, token: String, id:Int) : Observable<Boolean>

    // 移除项⽬（分组）中的成员
    fun deleteMember(token: String, id:Int) : Observable<Boolean>

    // 获取分组在线的成员ID
    fun getOnlineMember(teamId: Int, token: String) : Observable<MutableList<Char>>

    // 获取所在或指定分组信息
    fun getTeamInfo(token: String) : Observable<ResponseInfo>

    fun getProjectTeamInfo(teamId: Int, token: String) : Observable<ResponseInfo>

    // 获取所在项⽬信息
    fun getProjectInfo(token: String) : Observable<ResponseInfo>

    // 更改项⽬状态
    fun changeProjectStatus(token: String, status:String) : Observable<ResponseInfo>



}